#include <iostream>
#include <string>
#include <vector>
using namespace std;

class Solution
{
public:
    static string convert(string s, int numRows)
    {
        if (numRows == 1 || numRows >= s.size())
            return s;

        string rs;
        int d = 2*numRows-2;
        int n = s.size();

        for(int i=0; i<n; i+=d)
        {
            rs += s[i];
        }

        for(int x=1; x<numRows-1; x++)
        {
            for(int i=0; i<n; i+=d)
            {
                if(x+i < n)
                    rs += s[x+i];
                if(d-x+i < n)
                    rs += s[d-x+i];
            }
        }

        for(int i=numRows-1; i<n; i+=d)
        {
            rs += s[i];
        }
        return rs;
    }
};
